/*global jQuery, nw:true, window */

"use strict";

window.nw = window.nw || {};
nw.plugins = nw.plugins || {};

nw.plugins.Dom = function() {
};

nw.plugins.Dom.prototype = (function() {
//    var DomElement = function(element) {
//        this._element = element;
//        this._originalElement = element.elm();
//    };
//
//    DomElement.prototype = {
//        getValue: function(input) {
//            return this._element.val();
//        },
//        setValue: function(input, value) {
//            return this._element.val(value);
//        },
//        getHtml: function(input) {
//            return this._element.html();
//        },
//        setHtml: function(input, value) {
//            return this._element.html(value);
//        },
//        bind: function(input, type, handler) {
//            this._element.bind(type, handler);
//        },
//        trigger: function(input, type) {
//            this._element.trigger(type);
//        },
//        unbind: function(input, type, handler) {
//            this._element.unbind(type, handler);
//        },
//        show: function(input) {
//            this._element.show();
//        },
//        hide: function(input) {
//            this._element.hide();
//        }
//    };

    return {
        _findBySelector: function(selector) {
            if (selector instanceof jQuery) {
                return selector;
            }

            return jQuery(selector);
        },
        getValue: function(input) {
            return this._findBySelector(input).val();
        },
        setValue: function(input, value) {
            return this._findBySelector(input).val(value);
        },
        getHtml: function(input) {
            return this._findBySelector(input).html();
        },
        setHtml: function(input, value) {
            return this._findBySelector(input).html(value);
        },
        isVisible: function(input) {
            return this._findBySelector(input).is(":visible");
        },
        bind: function(input, type, handler) {
            this._findBySelector(input).on(type, handler);
        },
        trigger: function(input, type) {
            this._findBySelector(input).trigger(type);
        },
        unbind: function(input, type, handler) {
            this._findBySelector(input).off(type, handler);
        },
        show: function(input) {
            this._findBySelector(input).show();
        },
        hide: function(input) {
            this._findBySelector(input).hide();
        }
    };
})();